using Microsoft.Expression.Media;
using System;
using System.Windows;
using System.Windows.Media;
namespace Microsoft.Expression.Shapes
{
	public sealed class Arc : PrimitiveShape, IGeometrySourceParameters, IArcGeometrySourceParameters
	{
		public static readonly DependencyProperty StartAngleProperty = DependencyProperty.Register("StartAngle", typeof(double), typeof(Arc), new DrawingPropertyMetadata(0.0, DrawingPropertyMetadataOptions.AffectsRender));
		public static readonly DependencyProperty EndAngleProperty = DependencyProperty.Register("EndAngle", typeof(double), typeof(Arc), new DrawingPropertyMetadata(90.0, DrawingPropertyMetadataOptions.AffectsRender));
		public static readonly DependencyProperty ArcThicknessProperty = DependencyProperty.Register("ArcThickness", typeof(double), typeof(Arc), new DrawingPropertyMetadata(0.0, DrawingPropertyMetadataOptions.AffectsRender));
		public static readonly DependencyProperty ArcThicknessUnitProperty = DependencyProperty.Register("ArcThicknessUnit", typeof(UnitType), typeof(Arc), new DrawingPropertyMetadata(UnitType.Pixel, DrawingPropertyMetadataOptions.AffectsRender));
		public double StartAngle
		{
			get
			{
				return (double)base.GetValue(Arc.StartAngleProperty);
			}
			set
			{
				base.SetValue(Arc.StartAngleProperty, value);
			}
		}
		public double EndAngle
		{
			get
			{
				return (double)base.GetValue(Arc.EndAngleProperty);
			}
			set
			{
				base.SetValue(Arc.EndAngleProperty, value);
			}
		}
		public double ArcThickness
		{
			get
			{
				return (double)base.GetValue(Arc.ArcThicknessProperty);
			}
			set
			{
				base.SetValue(Arc.ArcThicknessProperty, value);
			}
		}
		public UnitType ArcThicknessUnit
		{
			get
			{
				return (UnitType)base.GetValue(Arc.ArcThicknessUnitProperty);
			}
			set
			{
				base.SetValue(Arc.ArcThicknessUnitProperty, value);
			}
		}
		Stretch IGeometrySourceParameters.Stretch
		{
			get
			{
				return base.get_Stretch();
			}
		}
		Brush IGeometrySourceParameters.Stroke
		{
			get
			{
				return base.get_Stroke();
			}
		}
		double IGeometrySourceParameters.StrokeThickness
		{
			get
			{
				return base.get_StrokeThickness();
			}
		}
		protected override IGeometrySource CreateGeometrySource()
		{
			return new ArcGeometrySource();
		}
	}
}
